// 防抖： 当我们触发高频事件时，将多次执行只在最后一个执行。
// 实现原理: 定义一个定时器，在定时器时间内触发事件时，清除上一次定时器，重新开始计时，在计时时间内触发就不执行； 计时时间之后只执行一次

function shake(handler, num) {
    let timer
    return function () {
        clearTimeout(timer);
        timer = setTimeout(() => {
            handler.call(this, ...arguments)
        }, num)
    }
}

export default shake